home *** CD-ROM | disk | FTP | other *** search
/ Cream of the Crop 1 / Cream of the Crop 1.iso / PROGRAM / MISCPAS.ARJ / SELECTOR.PAS < prev    next >
Pascal/Delphi Source File  |  1992-06-23  |  4KB  |  185 lines

  1.  
  2.                   { Routines developed by Mario A. Guerra
  3.                     MGUERRA@UCRVM2.BITNET for the public domain.
  4.  
  5.                     Copyright Mario A. Guerra, 1991.
  6.                   }
  7.  
  8. { SELECTOR - this unit has these character routines (some similar to C):
  9.  
  10.               Select     - Asks if some character is in a defined ASCII range
  11.               IsAlpha    - Asks if a char is alpha
  12.               IsAlnum    - Asks if a char is alpha, numeric or space
  13.               IsAscii    - Asks is a char is ASCII (between 00H and 7FH)
  14.               IsControl  - Asks if a char is a control char (00H-1FH and 7FH)
  15.               IsDigit    - Asks if a char is a decimal digit
  16.               IsGraph    - Asks if a char is a graphic (21H-7EH and 80H-FEH)
  17.               IsLower    - Asks if a character is lowercase
  18.               IsPrint    - Asks if a char is printable (20H-FEH)
  19.               IsPunct    - Asks if a char is a punctuation char
  20.               IsBlank    - Asks if a character is tab, return, newline,
  21.                            vertical tab or formfeed (09H-0DH and 20H)
  22.               IsUpper    - Asks if a char is uppercase
  23.               IsDigitH   - Asks if a character is an hex digit
  24.               IsExtend   - Asks if a char is extended (80H-FFH)
  25.  
  26.   In all the units, the function is true if is in the range specified.
  27.  
  28.   In function Select, Lo is the lower value and Hi is the higher value-
  29.  
  30. }
  31.  
  32. Unit
  33.     Selector;
  34.  
  35. Interface
  36.  
  37. Function Select (Ch : Char; Low, Hi : Byte) : Boolean;
  38.  
  39. Function IsLower     (Ch : Char) : Boolean;
  40. Function IsUpper     (Ch : Char) : Boolean;
  41. Function IsAlpha     (Ch : Char) : Boolean;
  42. Function IsDigit     (Ch : Char) : Boolean;
  43. Function IsAlnum     (Ch : Char) : Boolean;
  44. Function IsAscii     (Ch : Char) : Boolean;
  45. Function IsControl   (Ch : Char) : Boolean;
  46. Function IsGraph     (Ch : Char) : Boolean;
  47. Function IsPrint     (Ch : Char) : Boolean;
  48. Function IsPunct     (Ch : Char) : Boolean;
  49. Function IsBlank     (Ch : Char) : Boolean;
  50. Function IsDigitH    (Ch : Char) : Boolean;
  51. Function IsExtend    (Ch : Char) : Boolean;
  52.  
  53. Implementation
  54.  
  55. Function Select (Ch : Char; Low, Hi : Byte) : Boolean;
  56.  
  57. Begin
  58.   If (Ord (Ch) >= Low) And (Ord (Ch) <= Hi) then
  59.       Select := True
  60.   Else
  61.       Select := False;
  62. End;
  63.  
  64.  
  65. Function IsLower     (Ch : Char) : Boolean;
  66.  
  67. Begin
  68.   If Select (Ch, Ord('a'), Ord('z')) then
  69.       IsLower  := True
  70.   Else
  71.       IsLower  := False;
  72. End;
  73.  
  74. Function IsUpper     (Ch : Char) : Boolean;
  75.  
  76. Begin
  77.   If Select (Ch, Ord('A'), Ord('Z')) then
  78.       IsUpper  := True
  79.   Else
  80.       IsUpper  := False;
  81. End;
  82.  
  83. Function IsAlpha     (Ch : Char) : Boolean;
  84.  
  85. Begin
  86.   If IsLower (Ch) Or IsUpper (Ch) then
  87.       IsAlpha := True
  88.   Else
  89.       IsAlpha := False;
  90. End;
  91.  
  92. Function IsDigit     (Ch : Char) : Boolean;
  93.  
  94. Begin
  95.   If Select (Ch, Ord('0'), Ord('9')) then
  96.       IsDigit  := True
  97.   Else
  98.       IsDigit  := False;
  99. End;
  100.  
  101. Function IsAlnum     (Ch : Char) : Boolean;
  102.  
  103. Begin
  104.   If IsAlpha(Ch) Or IsDigit  (Ch) Or (Ch = ' ') then
  105.       IsAlnum := True
  106.   Else
  107.       IsAlnum := False;
  108. End;
  109.  
  110. Function IsAscii     (Ch : Char) : Boolean;
  111.  
  112. Begin
  113.   If Select (Ch, 0, 127) then
  114.       IsAscii := True
  115.   Else
  116.       IsAscii := False;
  117. End;
  118.  
  119. Function IsControl   (Ch : Char) : Boolean;
  120.  
  121. Begin
  122.   If Select (Ch, 0, 31) Or (Ord (Ch) = 127) then
  123.       IsControl := True
  124.   Else
  125.       IsControl := False;
  126. End;
  127.  
  128. Function IsGraph     (Ch : Char) : Boolean;
  129.  
  130. Begin
  131.   If Select (Ch, 33, 126) or Select (Ch, 128, 254) then
  132.       IsGraph:= True
  133.   Else
  134.       IsGraph:= False;
  135. End;
  136.  
  137. Function IsPrint     (Ch : Char) : Boolean;
  138.  
  139. Begin
  140.   If IsGraph(Ch) Or (Ch = ' ') then
  141.       IsPrint  := True
  142.   Else
  143.       IsPrint  := False;
  144. End;
  145.  
  146. Function IsBlank     (Ch : Char) : Boolean;
  147.  
  148. Begin
  149.   If (Ch = ' ')     Or (Ch = Chr(09)) Or (Ch = Chr(10)) Or
  150.      (Ch = Chr(13)) Or (Ch = Chr(12)) Or (Ch = Chr(05)) then
  151.          IsBlank  := True
  152.   Else
  153.          IsBlank  := False;
  154. End;
  155.  
  156. Function IsPunct     (Ch : Char) : Boolean;
  157.  
  158. Begin
  159.   If IsControl (Ch) Or IsBlank  (Ch) then
  160.       IsPunct  := True
  161.   Else
  162.       IsPunct  := False;
  163. End;
  164.  
  165. Function IsDigitH   (Ch : Char) : Boolean;
  166.  
  167. Begin
  168.   If IsDigit (Ch) Or Select (Ch, Ord('A'), Ord('F')) then
  169.       IsDigitH := True
  170.   Else
  171.       IsDigitH := False;
  172. End;
  173.  
  174.  
  175. Function IsExtend    (Ch : Char) : Boolean;
  176.  
  177. Begin
  178.   If Select (Ch, 128, 255) then
  179.       IsExtend := True
  180.   Else
  181.       IsExtend := False;
  182. End;
  183.  
  184. End.
  185.